<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>finding_donors</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;">&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;<a class="anchor-link" href="#&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;">&#182;</a></h1><h2 id="&#30417;&#30563;&#23398;&#20064;">&#30417;&#30563;&#23398;&#20064;<a class="anchor-link" href="#&#30417;&#30563;&#23398;&#20064;">&#182;</a></h2><h2 id="&#39033;&#30446;2:-&#20026;CharityML&#23547;&#25214;&#25424;&#29486;&#32773;">&#39033;&#30446;2: &#20026;<em>CharityML</em>&#23547;&#25214;&#25424;&#29486;&#32773;<a class="anchor-link" href="#&#39033;&#30446;2:-&#20026;CharityML&#23547;&#25214;&#25424;&#29486;&#32773;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>欢迎来到机器学习工程师纳米学位的第二个项目！在此文件中，有些示例代码已经提供给你，但你还需要实现更多的功能让项目成功运行。除非有明确要求，你无须修改任何已给出的代码。以<strong>'练习'</strong>开始的标题表示接下来的代码部分中有你必须要实现的功能。每一部分都会有详细的指导，需要实现的部分也会在注释中以'TODO'标出。请仔细阅读所有的提示！</p>
<p>除了实现代码外，你还必须回答一些与项目和你的实现有关的问题。每一个需要你回答的问题都会以<strong>'问题 X'</strong>为标题。请仔细阅读每个问题，并且在问题后的<strong>'回答'</strong>文字框中写出完整的答案。我们将根据你对问题的回答和撰写代码所实现的功能来对你提交的项目进行评分。</p>
<blockquote><p><strong>提示：</strong>Code 和 Markdown 区域可通过<strong>Shift + Enter</strong>快捷键运行。此外，Markdown可以通过双击进入编辑模式。</p>
</blockquote>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#24320;&#22987;">&#24320;&#22987;<a class="anchor-link" href="#&#24320;&#22987;">&#182;</a></h2><p>在这个项目中，你将使用1994年美国人口普查收集的数据，选用几个监督学习算法以准确地建模被调查者的收入。然后，你将根据初步结果从中选择出最佳的候选算法，并进一步优化该算法以最好地建模这些数据。你的目标是建立一个能够准确地预测被调查者年收入是否超过50000美元的模型。这种类型的任务会出现在那些依赖于捐款而存在的非营利性组织。了解人群的收入情况可以帮助一个非营利性的机构更好地了解他们要多大的捐赠，或是否他们应该接触这些人。虽然我们很难直接从公开的资源中推断出一个人的一般收入阶层，但是我们可以（也正是我们将要做的）从其他的一些公开的可获得的资源中获得一些特征从而推断出该值。</p>
<p>这个项目的数据集来自<a href="https://archive.ics.uci.edu/ml/datasets/Census+Income">UCI机器学习知识库</a>。这个数据集是由Ron Kohavi和Barry Becker在发表文章<em>"Scaling Up the Accuracy of Naive-Bayes Classifiers: A Decision-Tree Hybrid"</em>之后捐赠的，你可以在Ron Kohavi提供的<a href="https://www.aaai.org/Papers/KDD/1996/KDD96-033.pdf">在线版本</a>中找到这个文章。我们在这里探索的数据集相比于原有的数据集有一些小小的改变，比如说移除了特征<code>'fnlwgt'</code> 以及一些遗失的或者是格式不正确的记录。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#25506;&#32034;&#25968;&#25454;">&#25506;&#32034;&#25968;&#25454;<a class="anchor-link" href="#&#25506;&#32034;&#25968;&#25454;">&#182;</a></h2><p>运行下面的代码单元以载入需要的Python库并导入人口普查数据。注意数据集的最后一列<code>'income'</code>将是我们需要预测的列（表示被调查者的年收入会大于或者是最多50,000美元），人口普查数据中的每一列都将是关于被调查者的特征。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 检查你的Python版本</span>
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">version_info</span>
<span class="k">if</span> <span class="n">version_info</span><span class="o">.</span><span class="n">major</span> <span class="o">!=</span> <span class="mi">2</span> <span class="ow">and</span> <span class="n">version_info</span><span class="o">.</span><span class="n">minor</span> <span class="o">!=</span> <span class="mi">7</span><span class="p">:</span>
    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;请使用Python 2.7来完成此项目&#39;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 为这个项目导入需要的库</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="kn">as</span> <span class="nn">pd</span>
<span class="kn">from</span> <span class="nn">time</span> <span class="kn">import</span> <span class="n">time</span>
<span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">display</span> <span class="c1"># 允许为DataFrame使用display()</span>

<span class="c1"># 导入附加的可视化代码visuals.py</span>
<span class="kn">import</span> <span class="nn">visuals</span> <span class="kn">as</span> <span class="nn">vs</span>

<span class="c1"># 为notebook提供更加漂亮的可视化</span>
<span class="o">%</span><span class="k">matplotlib</span> inline

<span class="c1"># 导入人口普查数据</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s2">&quot;census.csv&quot;</span><span class="p">)</span>

<span class="c1"># 成功 - 显示第一条记录</span>
<span class="n">display</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>age</th>
      <th>workclass</th>
      <th>education_level</th>
      <th>education-num</th>
      <th>marital-status</th>
      <th>occupation</th>
      <th>relationship</th>
      <th>race</th>
      <th>sex</th>
      <th>capital-gain</th>
      <th>capital-loss</th>
      <th>hours-per-week</th>
      <th>native-country</th>
      <th>income</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>39</td>
      <td>State-gov</td>
      <td>Bachelors</td>
      <td>13.0</td>
      <td>Never-married</td>
      <td>Adm-clerical</td>
      <td>Not-in-family</td>
      <td>White</td>
      <td>Male</td>
      <td>2174.0</td>
      <td>0.0</td>
      <td>40.0</td>
      <td>United-States</td>
      <td>&lt;=50K</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;">&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;">&#182;</a></h3><p>首先我们对数据集进行一个粗略的探索，我们将看看每一个类别里会有多少被调查者？并且告诉我们这些里面多大比例是年收入大于50,000美元的。在下面的代码单元中，你将需要计算以下量：</p>
<ul>
<li>总的记录数量，<code>'n_records'</code></li>
<li>年收入大于50,000美元的人数，<code>'n_greater_50k'</code>.</li>
<li>年收入最多为50,000美元的人数 <code>'n_at_most_50k'</code>.</li>
<li>年收入大于50,000美元的人所占的比例， <code>'greater_percent'</code>.</li>
</ul>
<p><strong>提示：</strong> 您可能需要查看上面的生成的表，以了解<code>'income'</code>条目的格式是什么样的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt output_prompt">Out[3]:</div>




<div class="output_text output_subarea output_execute_result">
<pre>array([&#39;&lt;=50K&#39;, &#39;&lt;=50K&#39;, &#39;&lt;=50K&#39;, ..., &#39;&lt;=50K&#39;, &#39;&lt;=50K&#39;, &#39;&gt;50K&#39;], dtype=object)</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：总的记录数</span>
<span class="n">n_records</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>

<span class="c1"># TODO：被调查者的收入大于$50,000的人数</span>
<span class="n">n_greater_50k</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;&gt;50K&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>

<span class="c1"># TODO：被调查者的收入最多为$50,000的人数</span>
<span class="n">n_at_most_50k</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;&lt;=50K&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>

<span class="c1"># TODO：被调查者收入大于$50,000所占的比例</span>
<span class="n">greater_percent</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">n_greater_50k</span><span class="p">)</span> <span class="o">/</span> <span class="n">n_records</span> <span class="o">*</span> <span class="mi">100</span>

<span class="c1"># 打印结果</span>
<span class="k">print</span> <span class="s2">&quot;Total number of records: {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_records</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Individuals making more than $50,000: {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_greater_50k</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Individuals making at most $50,000: {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_at_most_50k</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Percentage of individuals making more than $50,000: {:.2f}%&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">greater_percent</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Total number of records: 45222
Individuals making more than $50,000: 11208
Individuals making at most $50,000: 34014
Percentage of individuals making more than $50,000: 24.78%
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#20934;&#22791;&#25968;&#25454;">&#20934;&#22791;&#25968;&#25454;<a class="anchor-link" href="#&#20934;&#22791;&#25968;&#25454;">&#182;</a></h2><p>在数据能够被作为输入提供给机器学习算法之前，它经常需要被清洗，格式化，和重新组织 - 这通常被叫做<strong>预处理</strong>。幸运的是，对于这个数据集，没有我们必须处理的无效或丢失的条目，然而，由于某一些特征存在的特性我们必须进行一定的调整。这个预处理都可以极大地帮助我们提升几乎所有的学习算法的结果和预测能力。</p>
<h3 id="&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;">&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;<a class="anchor-link" href="#&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;">&#182;</a></h3><p><code>income</code> 列是我们需要的标签，记录一个人的年收入是否高于50K。 因此我们应该把他从数据中剥离出来，单独存放。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 将数据切分成特征和对应的标签</span>
<span class="n">income_raw</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span>
<span class="n">features_raw</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="s1">&#39;income&#39;</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;">&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;<a class="anchor-link" href="#&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;">&#182;</a></h3><p>一个数据集有时可能包含至少一个靠近某个数字的特征，但有时也会有一些相对来说存在极大值或者极小值的不平凡分布的的特征。算法对这种分布的数据会十分敏感，并且如果这种数据没有能够很好地规一化处理会使得算法表现不佳。在人口普查数据集的两个特征符合这个描述：'<code>capital-gain'</code>和<code>'capital-loss'</code>。</p>
<p>运行下面的代码单元以创建一个关于这两个特征的条形图。请注意当前的值的范围和它们是如何分布的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 可视化 &#39;capital-gain&#39;和&#39;capital-loss&#39; 两个特征</span>
<span class="n">vs</span><span class="o">.</span><span class="n">distribution</span><span class="p">(</span><span class="n">features_raw</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
tAkIAACg7Q67WtJh1lQp5QAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>对于高度倾斜分布的特征如<code>'capital-gain'</code>和<code>'capital-loss'</code>，常见的做法是对数据施加一个<a href="https://en.wikipedia.org/wiki/Data_transformation_(statistics)">对数转换</a>，将数据转换成对数，这样非常大和非常小的值不会对学习算法产生负面的影响。并且使用对数变换显著降低了由于异常值所造成的数据范围异常。但是在应用这个变换时必须小心：因为0的对数是没有定义的，所以我们必须先将数据处理成一个比0稍微大一点的数以成功完成对数转换。</p>
<p>运行下面的代码单元来执行数据的转换和可视化结果。再次，注意值的范围和它们是如何分布的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 对于倾斜的数据使用Log转换</span>
<span class="n">skewed</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;capital-gain&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-loss&#39;</span><span class="p">]</span>
<span class="n">features_raw</span><span class="p">[</span><span class="n">skewed</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">skewed</span><span class="p">]</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>

<span class="c1"># 可视化对数转换后 &#39;capital-gain&#39;和&#39;capital-loss&#39; 两个特征</span>
<span class="n">vs</span><span class="o">.</span><span class="n">distribution</span><span class="p">(</span><span class="n">features_raw</span><span class="p">,</span> <span class="n">transformed</span> <span class="o">=</span> <span class="bp">True</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
SUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;">&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;<a class="anchor-link" href="#&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;">&#182;</a></h3><p>除了对于高度倾斜的特征施加转换，对数值特征施加一些形式的缩放通常会是一个好的习惯。在数据上面施加一个缩放并不会改变数据分布的形式（比如上面说的'capital-gain' or 'capital-loss'）；但是，规一化保证了每一个特征在使用监督学习器的时候能够被平等的对待。注意一旦使用了缩放，观察数据的原始形式不再具有它本来的意义了，就像下面的例子展示的。</p>
<p>运行下面的代码单元来规一化每一个数字特征。我们将使用<a href="http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html"><code>sklearn.preprocessing.MinMaxScaler</code></a>来完成这个任务。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="kn">import</span> <span class="n">MinMaxScaler</span>

<span class="c1"># 初始化一个 scaler，并将它施加到特征上</span>
<span class="n">scaler</span> <span class="o">=</span> <span class="n">MinMaxScaler</span><span class="p">()</span>
<span class="n">numerical</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;age&#39;</span><span class="p">,</span> <span class="s1">&#39;education-num&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-gain&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-loss&#39;</span><span class="p">,</span> <span class="s1">&#39;hours-per-week&#39;</span><span class="p">]</span>
<span class="n">features_raw</span><span class="p">[</span><span class="n">numerical</span><span class="p">]</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">numerical</span><span class="p">])</span>

<span class="c1"># 显示一个经过缩放的样例记录</span>
<span class="n">display</span><span class="p">(</span><span class="n">features_raw</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="n">n</span> <span class="o">=</span> <span class="mi">1</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>age</th>
      <th>workclass</th>
      <th>education_level</th>
      <th>education-num</th>
      <th>marital-status</th>
      <th>occupation</th>
      <th>relationship</th>
      <th>race</th>
      <th>sex</th>
      <th>capital-gain</th>
      <th>capital-loss</th>
      <th>hours-per-week</th>
      <th>native-country</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0.30137</td>
      <td>State-gov</td>
      <td>Bachelors</td>
      <td>0.8</td>
      <td>Never-married</td>
      <td>Adm-clerical</td>
      <td>Not-in-family</td>
      <td>White</td>
      <td>Male</td>
      <td>0.02174</td>
      <td>0.0</td>
      <td>0.397959</td>
      <td>United-States</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;">&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;">&#182;</a></h3><p>从上面的<strong>数据探索</strong>中的表中，我们可以看到有几个属性的每一条记录都是非数字的。通常情况下，学习算法期望输入是数字的，这要求非数字的特征（称为类别变量）被转换。转换类别变量的一种流行的方法是使用<strong>独热编码</strong>方案。独热编码为每一个非数字特征的每一个可能的类别创建一个<em>“虚拟”</em>变量。例如，假设<code>someFeature</code>有三个可能的取值<code>A</code>，<code>B</code>或者<code>C</code>，。我们将把这个特征编码成<code>someFeature_A</code>, <code>someFeature_B</code>和<code>someFeature_C</code>.</p>
<table>
<thead><tr>
<th style="text-align:center">特征X</th>
<th></th>
<th style="text-align:center">特征X_A</th>
<th style="text-align:center">特征X_B</th>
<th style="text-align:center">特征X_C</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">B</td>
<td></td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">C</td>
<td>----&gt; 独热编码 ----&gt;</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
</tr>
<tr>
<td style="text-align:center">A</td>
<td></td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
</tr>
</tbody>
</table>
<p>此外，对于非数字的特征，我们需要将非数字的标签<code>'income'</code>转换成数值以保证学习算法能够正常工作。因为这个标签只有两种可能的类别（"&lt;=50K"和"&gt;50K"），我们不必要使用独热编码，可以直接将他们编码分别成两个类<code>0</code>和<code>1</code>，在下面的代码单元中你将实现以下功能：</p>
<ul>
<li>使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html?highlight=get_dummies#pandas.get_dummies"><code>pandas.get_dummies()</code></a>对<code>'features_raw'</code>数据来施加一个独热编码。</li>
<li>将目标标签<code>'income_raw'</code>转换成数字项。<ul>
<li>将"&lt;=50K"转换成<code>0</code>；将"&gt;50K"转换成<code>1</code>。</li>
</ul>
</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：使用pandas.get_dummies()对&#39;features_raw&#39;数据进行独热编码</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">get_dummies</span><span class="p">(</span><span class="n">features_raw</span><span class="p">)</span>

<span class="c1"># TODO：将&#39;income_raw&#39;编码成数字值</span>
<span class="n">income</span> <span class="o">=</span> <span class="n">income_raw</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="s1">&#39;&gt;50K&#39;</span> <span class="k">else</span> <span class="mi">0</span><span class="p">)</span>

<span class="c1"># 打印经过独热编码之后的特征数量</span>
<span class="n">encoded</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">features</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;{} total features after one-hot encoding.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">encoded</span><span class="p">))</span>

<span class="c1"># 移除下面一行的注释以观察编码的特征名字</span>
<span class="k">print</span> <span class="n">encoded</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>103 total features after one-hot encoding.
[&#39;age&#39;, &#39;education-num&#39;, &#39;capital-gain&#39;, &#39;capital-loss&#39;, &#39;hours-per-week&#39;, &#39;workclass_ Federal-gov&#39;, &#39;workclass_ Local-gov&#39;, &#39;workclass_ Private&#39;, &#39;workclass_ Self-emp-inc&#39;, &#39;workclass_ Self-emp-not-inc&#39;, &#39;workclass_ State-gov&#39;, &#39;workclass_ Without-pay&#39;, &#39;education_level_ 10th&#39;, &#39;education_level_ 11th&#39;, &#39;education_level_ 12th&#39;, &#39;education_level_ 1st-4th&#39;, &#39;education_level_ 5th-6th&#39;, &#39;education_level_ 7th-8th&#39;, &#39;education_level_ 9th&#39;, &#39;education_level_ Assoc-acdm&#39;, &#39;education_level_ Assoc-voc&#39;, &#39;education_level_ Bachelors&#39;, &#39;education_level_ Doctorate&#39;, &#39;education_level_ HS-grad&#39;, &#39;education_level_ Masters&#39;, &#39;education_level_ Preschool&#39;, &#39;education_level_ Prof-school&#39;, &#39;education_level_ Some-college&#39;, &#39;marital-status_ Divorced&#39;, &#39;marital-status_ Married-AF-spouse&#39;, &#39;marital-status_ Married-civ-spouse&#39;, &#39;marital-status_ Married-spouse-absent&#39;, &#39;marital-status_ Never-married&#39;, &#39;marital-status_ Separated&#39;, &#39;marital-status_ Widowed&#39;, &#39;occupation_ Adm-clerical&#39;, &#39;occupation_ Armed-Forces&#39;, &#39;occupation_ Craft-repair&#39;, &#39;occupation_ Exec-managerial&#39;, &#39;occupation_ Farming-fishing&#39;, &#39;occupation_ Handlers-cleaners&#39;, &#39;occupation_ Machine-op-inspct&#39;, &#39;occupation_ Other-service&#39;, &#39;occupation_ Priv-house-serv&#39;, &#39;occupation_ Prof-specialty&#39;, &#39;occupation_ Protective-serv&#39;, &#39;occupation_ Sales&#39;, &#39;occupation_ Tech-support&#39;, &#39;occupation_ Transport-moving&#39;, &#39;relationship_ Husband&#39;, &#39;relationship_ Not-in-family&#39;, &#39;relationship_ Other-relative&#39;, &#39;relationship_ Own-child&#39;, &#39;relationship_ Unmarried&#39;, &#39;relationship_ Wife&#39;, &#39;race_ Amer-Indian-Eskimo&#39;, &#39;race_ Asian-Pac-Islander&#39;, &#39;race_ Black&#39;, &#39;race_ Other&#39;, &#39;race_ White&#39;, &#39;sex_ Female&#39;, &#39;sex_ Male&#39;, &#39;native-country_ Cambodia&#39;, &#39;native-country_ Canada&#39;, &#39;native-country_ China&#39;, &#39;native-country_ Columbia&#39;, &#39;native-country_ Cuba&#39;, &#39;native-country_ Dominican-Republic&#39;, &#39;native-country_ Ecuador&#39;, &#39;native-country_ El-Salvador&#39;, &#39;native-country_ England&#39;, &#39;native-country_ France&#39;, &#39;native-country_ Germany&#39;, &#39;native-country_ Greece&#39;, &#39;native-country_ Guatemala&#39;, &#39;native-country_ Haiti&#39;, &#39;native-country_ Holand-Netherlands&#39;, &#39;native-country_ Honduras&#39;, &#39;native-country_ Hong&#39;, &#39;native-country_ Hungary&#39;, &#39;native-country_ India&#39;, &#39;native-country_ Iran&#39;, &#39;native-country_ Ireland&#39;, &#39;native-country_ Italy&#39;, &#39;native-country_ Jamaica&#39;, &#39;native-country_ Japan&#39;, &#39;native-country_ Laos&#39;, &#39;native-country_ Mexico&#39;, &#39;native-country_ Nicaragua&#39;, &#39;native-country_ Outlying-US(Guam-USVI-etc)&#39;, &#39;native-country_ Peru&#39;, &#39;native-country_ Philippines&#39;, &#39;native-country_ Poland&#39;, &#39;native-country_ Portugal&#39;, &#39;native-country_ Puerto-Rico&#39;, &#39;native-country_ Scotland&#39;, &#39;native-country_ South&#39;, &#39;native-country_ Taiwan&#39;, &#39;native-country_ Thailand&#39;, &#39;native-country_ Trinadad&amp;Tobago&#39;, &#39;native-country_ United-States&#39;, &#39;native-country_ Vietnam&#39;, &#39;native-country_ Yugoslavia&#39;]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;">&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;<a class="anchor-link" href="#&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;">&#182;</a></h3><p>现在所有的 <em>类别变量</em> 已被转换成数值特征，而且所有的数值特征已被规一化。和我们一般情况下做的一样，我们现在将数据（包括特征和它们的标签）切分成训练和测试集。其中80%的数据将用于训练和20%的数据用于测试。然后再进一步把训练数据分为训练集和验证集，用来选择和优化模型。</p>
<p>运行下面的代码单元来完成切分。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 导入 train_test_split</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">train_test_split</span>

<span class="c1"># 将&#39;features&#39;和&#39;income&#39;数据切分成训练集和测试集</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">income</span><span class="p">,</span> <span class="n">test_size</span> <span class="o">=</span> <span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
                                                    <span class="n">stratify</span> <span class="o">=</span> <span class="n">income</span><span class="p">)</span>
<span class="c1"># 将&#39;X_train&#39;和&#39;y_train&#39;进一步切分为训练集和验证集</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_val</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
                                                    <span class="n">stratify</span> <span class="o">=</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># 显示切分的结果</span>
<span class="k">print</span> <span class="s2">&quot;Training set has {} samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_train</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">print</span> <span class="s2">&quot;Validation set has {} samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_val</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">print</span> <span class="s2">&quot;Testing set has {} samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_test</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Training set has 28941 samples.
Validation set has 7236 samples.
Testing set has 9045 samples.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;">&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;<a class="anchor-link" href="#&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;">&#182;</a></h2><p>在这一部分中，我们将尝试四种不同的算法，并确定哪一个能够最好地建模数据。四种算法包含一个<em>天真的预测器</em> 和三个你选择的监督学习器。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;">&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;<a class="anchor-link" href="#&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;">&#182;</a></h3><p><em>CharityML</em>通过他们的研究人员知道被调查者的年收入大于\$50,000最有可能向他们捐款。因为这个原因*CharityML*对于准确预测谁能够获得\$50,000以上收入尤其有兴趣。这样看起来使用<strong>准确率</strong>作为评价模型的标准是合适的。另外，把<em>没有</em>收入大于\$50,000的人识别成年收入大于\$50,000对于<em>CharityML</em>来说是有害的，因为他想要找到的是有意愿捐款的用户。这样，我们期望的模型具有准确预测那些能够年收入大于\$50,000的能力比模型去<strong>查全</strong>这些被调查者<em>更重要</em>。我们能够使用<strong>F-beta score</strong>作为评价指标，这样能够同时考虑查准率和查全率：</p>
<p>$$ F_{\beta} = (1 + \beta^2) \cdot \frac{precision \cdot recall}{\left( \beta^2 \cdot precision \right) + recall} $$</p>
<p>尤其是，当 $\beta = 0.5$ 的时候更多的强调查准率，这叫做<strong>F$_{0.5}$ score</strong> （或者为了简单叫做F-score）。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;">&#38382;&#39064; 1 - &#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;<a class="anchor-link" href="#&#38382;&#39064;-1---&#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;">&#182;</a></h3><p>通过查看收入超过和不超过 \$50,000 的人数，我们能发现多数被调查者年收入没有超过 \$50,000。如果我们简单地预测说<em>“这个人的收入没有超过 \$50,000”</em>，我们就可以得到一个 准确率超过 50% 的预测。这样我们甚至不用看数据就能做到一个准确率超过 50%。这样一个预测被称作是天真的。通常对数据使用一个<em>天真的预测器</em>是十分重要的，这样能够帮助建立一个模型表现是否好的基准。 使用下面的代码单元计算天真的预测器的相关性能。将你的计算结果赋值给<code>'accuracy'</code>, <code>‘precision’</code>, <code>‘recall’</code> 和 <code>'fscore'</code>，这些值会在后面被使用，请注意这里不能使用scikit-learn，你需要根据公式自己实现相关计算。</p>
<p><em>如果我们选择一个无论什么情况都预测被调查者年收入大于 \$50,000 的模型，那么这个模型在<strong>验证集上</strong>的准确率，查准率，查全率和 F-score是多少？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1">#不能使用scikit-learn，你需要根据公式自己实现相关计算。</span>

<span class="c1">#TODO： 计算准确率</span>
<span class="n">pred</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">y_val</span><span class="p">))]</span>
<span class="n">TP</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">TN</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">FP</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">FN</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">y_val</span><span class="p">)):</span>
    <span class="k">if</span> <span class="n">pred</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">y_val</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
        <span class="n">TP</span> <span class="o">+=</span> <span class="mi">1</span>
    <span class="k">if</span> <span class="n">pred</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">y_val</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
        <span class="n">TN</span> <span class="o">+=</span> <span class="mi">1</span>
    <span class="k">if</span> <span class="n">pred</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">y_val</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
        <span class="n">FP</span> <span class="o">+=</span> <span class="mi">1</span>
    <span class="k">if</span> <span class="n">pred</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="n">y_val</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
        <span class="n">FN</span> <span class="o">+=</span> <span class="mi">1</span>
        
<span class="n">accuracy</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">TP</span> <span class="o">+</span> <span class="n">TN</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span>

<span class="c1"># TODO： 计算查准率 Precision</span>
<span class="n">precision</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">TP</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">TP</span> <span class="o">+</span> <span class="n">FN</span><span class="p">)</span>

<span class="c1"># TODO： 计算查全率 Recall</span>
<span class="n">recall</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">TP</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">TP</span> <span class="o">+</span> <span class="n">FP</span><span class="p">)</span>

<span class="c1"># TODO： 使用上面的公式，设置beta=0.5，计算F-score</span>
<span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="n">fscore</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">beta</span> <span class="o">*</span> <span class="n">beta</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="n">precision</span> <span class="o">*</span> <span class="n">recall</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">beta</span> <span class="o">*</span> <span class="n">beta</span> <span class="o">*</span> <span class="n">precision</span> <span class="o">+</span> <span class="n">recall</span><span class="p">)</span>

<span class="c1"># 打印结果</span>
<span class="k">print</span> <span class="s2">&quot;Naive Predictor on validation data: </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Accuracy score: {:.4f} </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Precision: {:.4f} </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Recall: {:.4f} </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    F-score: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy</span><span class="p">,</span> <span class="n">precision</span><span class="p">,</span> <span class="n">recall</span><span class="p">,</span> <span class="n">fscore</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Naive Predictor on validation data: 
     Accuracy score: 0.2478 
     Precision: 0.2478 
     Recall: 1.0000 
     F-score: 0.2917
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;">&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;<a class="anchor-link" href="#&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;">&#182;</a></h2><h3 id="&#38382;&#39064;-2---&#27169;&#22411;&#24212;&#29992;">&#38382;&#39064; 2 - &#27169;&#22411;&#24212;&#29992;<a class="anchor-link" href="#&#38382;&#39064;-2---&#27169;&#22411;&#24212;&#29992;">&#182;</a></h3><p>你能够在 <a href="http://scikit-learn.org/stable/supervised_learning.html"><code>scikit-learn</code></a> 中选择以下监督学习模型</p>
<ul>
<li>高斯朴素贝叶斯 (GaussianNB)</li>
<li>决策树 (DecisionTree)</li>
<li>集成方法 (Bagging, AdaBoost, Random Forest, Gradient Boosting)</li>
<li>K近邻 (K Nearest Neighbors)</li>
<li>随机梯度下降分类器 (SGDC)</li>
<li>支撑向量机 (SVM)</li>
<li>Logistic回归（LogisticRegression）</li>
</ul>
<p>从上面的监督学习模型中选择三个适合我们这个问题的模型，并回答相应问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;1">&#27169;&#22411;1<a class="anchor-link" href="#&#27169;&#22411;1">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：决策树</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：</p>
<p>在银行系统中，决策树用于评估用户的信用。（<a href="https://wenku.baidu.com/view/4c4cf21ea300a6c30c229f22.html">https://wenku.baidu.com/view/4c4cf21ea300a6c30c229f22.html</a> ）</p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：</p>
<ul>
<li>易于理解</li>
<li>速度快</li>
<li>在每个特征都能提供很多信息增益的时候表现最好</li>
</ul>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：</p>
<ul>
<li>枝叶过多时容易过拟合</li>
<li>连续值难以表示</li>
<li>在很多特征独自提供的信息增益很小时候表现很差</li>
</ul>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：</p>
<p>这个数据集是一个分类问题，需要评估年收入是否超过50000美元。从案例来看，这和银行评估用户信用的应用场景很类似，而决策树已经广泛用于这个方面；从特征来看，教育水平等因素，凭生活直觉，和年收入关系很大，因此，决策书适合这个模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;2">&#27169;&#22411;2<a class="anchor-link" href="#&#27169;&#22411;2">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：高斯朴素贝叶斯</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：
用于垃圾邮件过滤
<a href="https://zh.wikipedia.org/wiki/%E8%B2%9D%E8%91%89%E6%96%AF%E5%9E%83%E5%9C%BE%E9%83%B5%E4%BB%B6%E9%81%8E%E6%BF%BE">https://zh.wikipedia.org/wiki/%E8%B2%9D%E8%91%89%E6%96%AF%E5%9E%83%E5%9C%BE%E9%83%B5%E4%BB%B6%E9%81%8E%E6%BF%BE</a></p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：</p>
<ul>
<li>易于理解</li>
<li>只通过小规模数据时就能得到较好的效果</li>
<li>可直接由数学公式得出，效率高，易于实现</li>
<li>也适用于连续值</li>
<li>数学理论中要求特征独立，实际中当特征较少、相关性低的时候，表现最好</li>
</ul>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：</p>
<ul>
<li>涉及到随机的概率，不一定能把数据分类得很清楚</li>
<li>特征之间相关性大、特征较多的时候，表现很差</li>
</ul>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：</p>
<ul>
<li>如果一个人年收入超过50000美元，那他教育水平高的概率比较大，因此如果已经知道一个人教育水平高，那他年收入超过50000美元的概率也相应提高了。由于年收入超过50000美元的群体具有一些特点的概率更高，所以适合这个问题。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;3">&#27169;&#22411;3<a class="anchor-link" href="#&#27169;&#22411;3">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：k近邻</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：用于保险业精准营销 <a href="http://shujuren.org/article/168.html">http://shujuren.org/article/168.html</a></p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：</p>
<ul>
<li>不需要训练，可以直接用来预测</li>
<li>在预测稀有对象时，表现最好</li>
</ul>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：</p>
<ul>
<li>预测时，样本越多，时间、空间资源消耗越大</li>
<li>在数据互相穿插，边界混合、模糊不清的时候，表现很差</li>
</ul>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：年收入超过50000美元的人毕竟是少数，可以近似看作稀有对象。“人以类聚，物以群分”，如果一个人的各项特征和一个年收入超过50000美元的人更加接近，那么就可以认为他也是年收入超过50000美元，因此适合这个问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;---&#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;">&#32451;&#20064; - &#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;<a class="anchor-link" href="#&#32451;&#20064;---&#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;">&#182;</a></h3><p>为了正确评估你选择的每一个模型的性能，创建一个能够帮助你快速有效地使用不同大小的训练集并在验证集上做预测的训练和验证的流水线是十分重要的。
你在这里实现的功能将会在接下来的部分中被用到。在下面的代码单元中，你将实现以下功能：</p>
<ul>
<li>从<a href="http://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics"><code>sklearn.metrics</code></a>中导入<code>fbeta_score</code>和<code>accuracy_score</code>。</li>
<li>用训练集拟合学习器，并记录训练时间。</li>
<li>对训练集的前300个数据点和验证集进行预测并记录预测时间。</li>
<li>计算预测训练集的前300个数据点的准确率和F-score。</li>
<li>计算预测验证集的准确率和F-score。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：从sklearn中导入两个评价指标 - fbeta_score和accuracy_score</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="kn">import</span> <span class="n">fbeta_score</span><span class="p">,</span> <span class="n">accuracy_score</span>

<span class="k">def</span> <span class="nf">train_predict</span><span class="p">(</span><span class="n">learner</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_val</span><span class="p">):</span> 
    <span class="sd">&#39;&#39;&#39;</span>
<span class="sd">    inputs:</span>
<span class="sd">       - learner: the learning algorithm to be trained and predicted on</span>
<span class="sd">       - sample_size: the size of samples (number) to be drawn from training set</span>
<span class="sd">       - X_train: features training set</span>
<span class="sd">       - y_train: income training set</span>
<span class="sd">       - X_val: features validation set</span>
<span class="sd">       - y_val: income validation set</span>
<span class="sd">    &#39;&#39;&#39;</span>
    
    <span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
    
    <span class="c1"># TODO：使用sample_size大小的训练数据来拟合学习器</span>
    <span class="c1"># TODO: Fit the learner to the training data using slicing with &#39;sample_size&#39;</span>
    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序开始时间</span>
    <span class="n">learner</span> <span class="o">=</span> <span class="n">learner</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span><span class="n">sample_size</span><span class="p">],</span> <span class="n">y_train</span><span class="p">[:</span><span class="n">sample_size</span><span class="p">])</span>
    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序结束时间</span>
    
    <span class="c1"># TODO：计算训练时间</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;train_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">end</span> <span class="o">-</span> <span class="n">start</span>
    
    <span class="c1"># TODO: 得到在验证集上的预测值</span>
    <span class="c1">#       然后得到对前300个训练数据的预测结果</span>
    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序开始时间</span>
    <span class="n">predictions_val</span> <span class="o">=</span> <span class="n">learner</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>
    <span class="n">predictions_train</span> <span class="o">=</span> <span class="n">learner</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span><span class="mi">300</span><span class="p">])</span>
    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序结束时间</span>
    
    <span class="c1"># TODO：计算预测用时</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;pred_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">end</span> <span class="o">-</span> <span class="n">start</span>
            
    <span class="c1"># TODO：计算在最前面的300个训练数据的准确率</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;acc_train&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_train</span><span class="p">[:</span><span class="mi">300</span><span class="p">],</span> <span class="n">predictions_train</span><span class="p">)</span>
        
    <span class="c1"># TODO：计算在验证上的准确率</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;acc_val&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions_val</span><span class="p">)</span>
    
    <span class="c1"># TODO：计算在最前面300个训练数据上的F-score</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;f_train&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_train</span><span class="p">[:</span><span class="mi">300</span><span class="p">],</span> <span class="n">predictions_train</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
        
    <span class="c1"># TODO：计算验证集上的F-score</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;f_val&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions_val</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
       
    <span class="c1"># 成功</span>
    <span class="k">print</span> <span class="s2">&quot;{} trained on {} samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">learner</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">)</span>
        
    <span class="c1"># 返回结果</span>
    <span class="k">return</span> <span class="n">results</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;">&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;">&#182;</a></h3><p>在下面的代码单元中，您将需要实现以下功能：</p>
<ul>
<li>导入你在前面讨论的三个监督学习模型。             </li>
<li>初始化三个模型并存储在<code>'clf_A'</code>，<code>'clf_B'</code>和<code>'clf_C'</code>中。<ul>
<li>使用模型的默认参数值，在接下来的部分中你将需要对某一个模型的参数进行调整。             </li>
<li>设置<code>random_state</code>  (如果有这个参数)。       </li>
</ul>
</li>
<li>计算1%， 10%， 100%的训练数据分别对应多少个数据点，并将这些值存储在<code>'samples_1'</code>, <code>'samples_10'</code>, <code>'samples_100'</code>中</li>
</ul>
<p><strong>注意：</strong>取决于你选择的算法，下面实现的代码可能需要一些时间来运行！</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：从sklearn中导入三个监督学习模型</span>
<span class="kn">from</span> <span class="nn">sklearn.tree</span> <span class="kn">import</span> <span class="n">DecisionTreeClassifier</span>
<span class="kn">from</span> <span class="nn">sklearn.naive_bayes</span> <span class="kn">import</span> <span class="n">GaussianNB</span>
<span class="kn">from</span> <span class="nn">sklearn.neighbors</span> <span class="kn">import</span> <span class="n">KNeighborsClassifier</span>
<span class="c1"># TODO：初始化三个模型</span>
<span class="n">clf_A</span> <span class="o">=</span> <span class="n">DecisionTreeClassifier</span><span class="p">(</span><span class="n">random_state</span> <span class="o">=</span> <span class="mi">157</span><span class="p">)</span>
<span class="n">clf_B</span> <span class="o">=</span> <span class="n">GaussianNB</span><span class="p">()</span>
<span class="n">clf_C</span> <span class="o">=</span> <span class="n">KNeighborsClassifier</span><span class="p">()</span>

<span class="c1"># TODO：计算1%， 10%， 100%的训练数据分别对应多少点</span>
<span class="n">samples_1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span> <span class="o">*</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">samples_10</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span> <span class="o">*</span> <span class="mf">0.1</span><span class="p">)</span>
<span class="n">samples_100</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span>

<span class="c1"># 收集学习器的结果</span>
<span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">clf</span> <span class="ow">in</span> <span class="p">[</span><span class="n">clf_A</span><span class="p">,</span> <span class="n">clf_B</span><span class="p">,</span> <span class="n">clf_C</span><span class="p">]:</span>
    <span class="n">clf_name</span> <span class="o">=</span> <span class="n">clf</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
    <span class="n">results</span><span class="p">[</span><span class="n">clf_name</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
    <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">samples</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">([</span><span class="n">samples_1</span><span class="p">,</span> <span class="n">samples_10</span><span class="p">,</span> <span class="n">samples_100</span><span class="p">]):</span>
        <span class="n">results</span><span class="p">[</span><span class="n">clf_name</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">train_predict</span><span class="p">(</span><span class="n">clf</span><span class="p">,</span> <span class="n">samples</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_val</span><span class="p">)</span>

<span class="c1"># 对选择的三个模型得到的评价结果进行可视化</span>
<span class="n">vs</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">results</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">,</span> <span class="n">fscore</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>DecisionTreeClassifier trained on 289 samples.
DecisionTreeClassifier trained on 2894 samples.
DecisionTreeClassifier trained on 28941 samples.
GaussianNB trained on 289 samples.
GaussianNB trained on 2894 samples.
GaussianNB trained on 28941 samples.
KNeighborsClassifier trained on 289 samples.
KNeighborsClassifier trained on 2894 samples.
KNeighborsClassifier trained on 28941 samples.
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
UTMMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAM
YzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAM
wzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAM
wzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzKsQDAMwzAMwzAMYzIW
FS0AU3YcOXKks4WFxRQhhDdYWWQYhmEY5tEmj4gScnJypjVp0mRLRQvzIENCiIqWgSkDjhw50tna
2npRQEBAlq2tbYaZmRkXNMMwDMMwjyx5eXmUnp5uEx0dbZWZmfkmKxHFh2elH1IsLCymBAQEZNnb
26ez8sAwDMMwzKOOmZmZsLe3Tw8ICMiysLCYUtHyPMiwAvGQIoTwtrW1zahoORiGYRiGYSoTtra2
Gcq8mykmrEA8vJjxygPDMAzDMEx+1PiIx8AlgDOPYRiGYRiGYRiTYQWCYUrI2LFjff39/etXtBzM
g0Hz5s1r9enTp3pRrunVq1dAy5YtaxYU5kGoh2fOnLEioqZbtmxxKK80iajp559/7qo7v379ulnH
jh2DHB0dGxFR0zNnzlgVp0yYyoufn1+D8ePH+5gStiLqZGXj2WefDWzXrl1weaU3fPhwv5CQkHpa
ty+++MLVz8+vgbm5edPw8HD/9evXOxFR0/j4eH5baCWFC+YR4zt399DM5ORyLXdrN7ecvklJx4p6
3dWrV82nT5/uvXnz5ipXrlyxsrS0FL6+vlkdO3a8OXr06GvBwcHZZSFvUZkyZUrCO++8c6204x07
dqzvggULfLp06ZKyadOmC1o/CwuLpvPnz48eNWpUMiAfmFeuXLHS+bu4uOQ0btw4be7cuZcbN25c
IXth3L/7LjQ5M7Nc65qbtXVOUt++RaprvXr1CoiPj7fau3fvWZ3b7t277Xr27BkSFhaWOmTIkKQX
X3wxxMfHJysqKuqEnZ3dXdPAli1b1vTx8cnasGFDtKnp/frrr1GWlpYPpXnh999/7/zZZ595njhx
wj4jI8PM29s7q2XLlrcmTpx4tWHDhpkVIVNMTMwxd3f3XN35vHnzPI8ePeqwbdu2M97e3tm+vr45
D3KZuH/nHpqcWb59upu1W05S36L16b169Qr48ccf3QDA3NxcODo65gYGBmZ06dLlxvjx4xOdnJzy
Sku+gwcPnnJwcDApvqCgoKyYmJhjXl5euYWHNg1d311QmE8++eRu/12WXL582WLKlCnef/75Z5X4
+HgrBweH3KCgoIxXXnklcejQodctLMp/GDhr1qz4yZMnJ+jO79y5Q2PGjAkYPnx4wqhRoxKdnJxy
7ezshCqXnHIXkDEJXoF4xChv5aG4aUZFRVk2bty47i+//OIyduzY+J07d54+dOjQyblz58YlJyeb
z5w5s9JsfnJ2ds7z8fEpk07O2tpabN682WXbtm32hYV94403EmJiYo5FR0f/t2HDhnOpqakW3bp1
K7dZJX3KW3korTTXr1/v9PTTT9d65plnUn777bcLNjY2AgCuX79uOWPGDK+Sxu/l5ZXr6upaaoOl
siYjI4NMCTdu3Dif8PDw4Bo1amR+++23Uf/999+JJUuWXLSyshITJ070K2s5jeHv75+jVfqioqKs
Q0JC0ps3b57u7++fY2FhUSplYmo+lTblrTyUJM2mTZumxcTEHIuKijq+ZcuWs717977+9ddfezZs
2LBuXFxcqd2Hr69vjqkKiYWFBfz9/XOsra1LTYGcMmVKQkxMzDHd0ahRo9vPPffcda3bq6++el3/
ury8PGRnl9682OnTp62aNGlS988//6wyadKky/v27Tu5Y8eO0+Hh4Unz5s3zOX78uE2pJVYEnJ2d
87y9ve8qbBcuXLDKzMyk7t273wgICMh2dXXNs7GxEf7+/jlmZsUfppZ2fjL5YQWCqZQMGzasenZ2
Nh07duzkiBEjrj/22GPpNWvWzHr22WdT16xZE/v111/HAcBPP/3k1Lx581rOzs6NHB0dG4WFhdXa
sWOHnTYufRMGQM4c9+rVK0B3vnr16ip16tSpa2tr29jR0bFRgwYN6vz999+2AJCZmUlDhgyp6uXl
1dDKyqqJh4dHw2effTZQd62+6cjp06etOnXqFOTp6dnQ1ta2cc2aNesuXrw4X/o6k4l33nnHx93d
PdTZ2blRz549A27evJmvTXp6emZ17tw5Zfz48VULyzMHB4c8f3//nOrVq2e3a9fuzltvvZVw6dIl
68TERHOTMp3BokWL3Pr16xc8evTo+JUrV8aam9/LusGDB1/97LPPvAtbUp85c6ZnjRo16llbWzep
Xr16/QkTJnhrH2L65jJpaWnUr1+/6o6Ojo2cnJwa9e/f33/EiBF+hsyR5s6d6+7r69vAwcGhcfv2
7YMNDbq+/PJL16pVqzawtrZu0rJly5AzZ85Yaf0/++wzt6CgoHqWlpZNvLy8Go4aNcpXX77evXtX
Hz16tK+Hh0fDqlWrNgQKbiN//fWX3bx583wnTJhwedWqVbHPPPNMWs2aNbM6dep0OyIiIm7FihUx
xvJr5MiRfoGBgfVsbW0be3t7NwwPD/dPTk6+m/HXr183e+GFFwLc3d1Draysmnh7ezccMmTI3faw
ZcsWhyZNmtS2t7dvbG9v37hWrVp1N2zY4KTz17Z/Pz+/BuvWrXPfv3+/IxE1bd68eS1DZWJKOfr5
+TUYNWqUb//+/f2rVKnSSBcXYxwrKyvh7++fExAQkN28efP0CRMmJO7du/d0SkqKxZgxY+6WaWF5
n52djbffftunWrVq9a2srJp4eno2HDhwYDWdv74JU0F115AJ07Fjx6zbtm0bbGdn19jOzq5x+/bt
g0+cOGGt8//000/dLCwsmm7dutW+bt26dWxtbRvXq1evzq5du+wAOUD29/fP0R2WlpbC1tY2n5uD
g4OYPXu2h52dXeMNGzY41apVq66VlVWTzZs3OwJyNS80NLS2jY1NEy8vr4Z9+/atrt+XL1682LVm
zZp1ra2tm/j5+TV4/fXXq6alpd1VZF999dXqRIRjx46dHDZsWEqTJk0yGjZsmPnWW28lHz9+/GRw
cHCWoXLavn27/RNPPBHi4uISam9v37hhw4a1N27c6KgNs3z5cpdatWrVtbW1bezk5NSoUaNGtQ8e
PGgDAOnp6TRo0KBqnp6eDXXl8/zzzwfortWaMM2ePdujQYMG9QGgbdu2dYio6bZt2+wNmTAdPXrU
pkOHDkGOjo6NnJ2dGz355JMhhw8fvqsEFZSfTOnDCgRT6bh69ar5rl27nAcPHnzN2KygblYiNTXV
bNiwYdd27959aseOHacDAwMzevToUTMhIcHkQXNsbKzFK6+8EtirV6/ko0ePRu7atev0iBEjrlpa
WgIAZs2a5fnrr7+6fv311xcjIyNPrF+/Pqp58+ZpxuK7deuWedu2bW9t3Ljx3KFDh04OHDgwafTo
0TV+/fXXfB3Zpk2bXK5fv27xxx9/nFm+fPmF7du3V5k8efJ9Kytz5869fPz4cfuIiIgqpt5TUlKS
+dq1a10DAwMzPDw8Sm1p/mFm0qRJ3mPGjKk+f/78mFmzZiXo+48aNSrR3d09e+LEiUZNE8aOHeu7
ePFir2nTpl0+duzYidmzZ8etXLnSY9y4cb7GrnnzzTerbt26tcqXX3558a+//jrl7Oycu3LlSg/9
cMePH7fbtWuX48aNG8/9/PPPZ8+cOWM7cuTIatowiYmJlkuXLvVYs2bN+a1bt55OS0sz79mzZ1Be
nmxG3333nfNbb70V0Lt37+TDhw9HzpgxIy4iIsJTX77ffvvNNTEx0WLz5s1nN23adLawNrJ8+XI3
GxubvMmTJ181dI8F1UFbW9u8zz//PObff/+N/Oqrry7u27fPcejQoXfva+zYsX7Hjx+3W7duXVRk
ZOSJVatWna9Tp04GIAeSvXv3Dm7SpEna/v37T+7fv//ke++9d8Xe3t5gv3Hw4MFTXbt2TdHNhP/6
669RhsKZWo7ffPONl6enZ87u3btPLV++PNrYPTLGqVGjRnaPHj2St2zZUiU3N9ekvO/Tp0/A8uXL
PSdOnHjl6NGjkWvXrj0fGBho0ESusLqrT1paGnXp0qVmZmam2ZYtW85s2bLlzO3bt826du0aol1l
ysvLw6RJk6rOnz8/bu/evafc3NxywsPDg4o6452VlWU2bdo034ULF8YeO3YsMiws7M66deucBg0a
FBgeHp586NChyLVr154/d+6cTY8ePe5OXM2ePdvj/fffrzZ27NiEo0ePnvjyyy+j//jjD+chQ4b4
6+573759TsOGDbvq7Ox8X3uwtbUVjo6OBtvJrVu3zMLDw5P//PPPM3v37j3ZsmXLtN69e4ecPn3a
CgDOnTtnNXTo0MD+/fsnHT16NHLHjh2nhw4dek034TJt2jSvP/74o8qKFSsuREZGnvj++++jmjZt
esdQWsOHD0/avHnzGQBYv379uZiYmGOtWrW6L+zFixct27dvX8vf3z9r+/btp3fu3Hm6WrVqWZ06
daqlVawM5WeRCoQxGd4DwVQ6Tp48aZ2Xl4e6devms91v3Lhx7TNnztgCgK+vb1ZUVFTkgAEDbmjD
rFmzJsbFxcXlp59+cn7jjTfuWyI2RFxcnGVOTg69/PLLKbVq1coCgCZNmtxNOyYmxqpGjRoZXbt2
TTUzM0NISEhWmzZtjHZKzZs3T2/evHm67rxevXrXtm/f7vjtt9+6Pvfcc6k6d19f3yzdSkrjxo0z
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
n3/+2XnXrl2Ow4YNC5w7d2763r17z1hYWOC7776LOXjw4NXffvvNefv27U6zZ8/2nTVrVuw777xT
rDpflHI0ZirFFI3IyEhbBweH3JK0IWMUVneLK7OZmRm0bzDStWHdPZiKlZVVnjYeIQSEEDRmzJjL
/fv3T9EP7+/vn52QkGABAHPmzIlt27btfea0QUFBWTqzHqX0FOk++/TpE3jjxg2LWbNmxQUHB2fa
2tqK559/PigrK4sAwNLSEvv27Tu7Y8cO+y1btjht2LDBdcaMGX5r1qw537Nnz1tt2rS5c/Hixf/U
M9Np3Lhx/jNnzsw5ePDg6eK+bSsvLw9t2rS5+cknn1zS93Nzc7s7JtDPT6bs4JlJptLh5eWV27p1
65tff/21l3YzpT4JCQnm58+ft3nnnXfie/Xqdatp06YZtra2edevX8/Xe7i6uuZoX3Ganp5OUVFR
+ZQTMzMztGvX7s7//ve/hEOHDp0JCwtLjYiIcNf5Ozs75w0YMOBGRERE3MGDB09euHDBxtjmrH/+
+cfh+eefTx4yZEjK448/nl6nTp3MixcvlvhtF+++++41Ozu7vPfee8+k95vrOlHdag1TML6+vjm7
d+8+4+LiktOmTZtax48fNziT3aZNmzvPPPPMdf2N7U2bNk23trYW58+ft6pfv36m/mHooVavXr1M
S0tLsXv37nzKyOHDhwt965YhUlJSLCIjI+/K/d9//1nfuHHDon79+ukAEBwcnL5nz5589Xbbtm2O
NjY2eXXr1i3Q7KKgNjJo0KDkjIwMs+nTpxt8S5Wxjfy7du1yqFKlSs6nn356pX379rcbNmyYeenS
pftmcL28vHJfe+2162vWrInZsGHDuYMHDzocOXLEVucfFhaWMXXq1Ku7d+8+17t376SIiAijK3WF
UZxyZIrPxYsXLX/++WfXp59++oYpea+b9d+4caOzqWkU1r9rqVevXsb58+dttJt34+LiLKKjo210
7agsMTc3R506de6cOnXK1lAeODk55QUFBWW5urrmnD171tpQGFtbW+Hv75/z+OOPp3711Vde+i/n
AORzMDU19T73vLw8HDp0yOH111+/2q9fv5thYWEZPj4+OVeuXMnXH5qZmaFDhw63Z8+eHX/kyJHT
DRo0uLN8+XI3nb+Li0veoEGDbqxcuTL2r7/+On327Fnbbdu2FftbG40aNbpz9uxZ2+Dg4Cz9+y2r
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#25552;&#39640;&#25928;&#26524;">&#25552;&#39640;&#25928;&#26524;<a class="anchor-link" href="#&#25552;&#39640;&#25928;&#26524;">&#182;</a></h2><p>在这最后一节中，您将从三个有监督的学习模型中选择 <em>最好的</em> 模型来使用学生数据。你将在整个训练集（<code>X_train</code>和<code>y_train</code>）上使用网格搜索优化至少调节一个参数以获得一个比没有调节之前更好的 F-score。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;">&#38382;&#39064; 3 - &#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-3---&#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;">&#182;</a></h3><p><em>基于你前面做的评价，用一到两段话向 </em>CharityML<em> 解释这三个模型中哪一个对于判断被调查者的年收入大于 \$50,000 是最合适的。</em><br>
<strong>提示：</strong>你的答案应该包括评价指标，预测/训练时间，以及该算法是否适合这里的数据。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<p>决策树对于判断被调查者的年收入大于$ 50,000是最合适的。</p>
<ul>
<li>对于训练数据，决策树的准确率和F-score都是最高的，超过了0.9；使用更客观的交叉验证评分时，决策树和kNN的准确率和F-score都是比较高的，分别达到了0.8和0.6。</li>
<li>预测和训练时间上来看，决策树有绝对的优势，尤其是预测时，决策树花费的时间相对于kNN完全可以忽略不计，数据规模增大时更加明显。</li>
<li>这里的数据，每个特征都能提供一定的信息增益，尤其是学历、工作时长，而且是一个分类问题，因此决策树适合这里的数据。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;">&#38382;&#39064; 4 - &#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-4---&#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;">&#182;</a></h3><p><em>用一到两段话，向 </em>CharityML<em> 用外行也听得懂的话来解释最终模型是如何工作的。你需要解释所选模型的主要特点。例如，这个模型是怎样被训练的，它又是如何做出预测的。避免使用高级的数学或技术术语，不要使用公式或特定的算法名词。</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答： </strong></p>
<p>决策树就像一个垃圾分类器，预测的过程就像分捡垃圾，先分厨余垃圾和其他垃圾，其他垃圾再分可回收和不可回收，这样子就可以把新来的垃圾分到合适的位置。</p>
<p>训练就是在选择第一步以什么标准分，两个分支里，第二步又以什么标准分，直到分完为止。第一步选择用厨余垃圾作为标准的原因是，可以用一个局部的性质，就把垃圾分成整体性质都很不同的两类，达到最大的分捡效率。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;">&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;">&#182;</a></h3><p>调节选择的模型的参数。使用网格搜索（GridSearchCV）来至少调整模型的重要参数（至少调整一个），这个参数至少需尝试3个不同的值。你要使用整个训练集来完成这个过程。在接下来的代码单元中，你需要实现以下功能：</p>
<ul>
<li>导入<a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html"><code>sklearn.model_selection.GridSearchCV</code></a> 和 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html"><code>sklearn.metrics.make_scorer</code></a>.</li>
<li>初始化你选择的分类器，并将其存储在<code>clf</code>中。<ul>
<li>设置<code>random_state</code> (如果有这个参数)。</li>
</ul>
</li>
<li>创建一个对于这个模型你希望调整参数的字典。<ul>
<li>例如: parameters = {'parameter' : [list of values]}。</li>
<li><strong>注意：</strong> 如果你的学习器有 <code>max_features</code> 参数，请不要调节它！</li>
</ul>
</li>
<li>使用<code>make_scorer</code>来创建一个<code>fbeta_score</code>评分对象（设置$\beta = 0.5$）。</li>
<li>在分类器clf上用'scorer'作为评价函数运行网格搜索，并将结果存储在grid_obj中。</li>
<li>用训练集（X_train, y_train）训练grid search object,并将结果存储在<code>grid_fit</code>中。</li>
</ul>
<p><strong>注意：</strong> 取决于你选择的参数列表，下面实现的代码可能需要花一些时间运行！</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：导入&#39;GridSearchCV&#39;, &#39;make_scorer&#39;和其他一些需要的库</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">GridSearchCV</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="kn">import</span> <span class="n">make_scorer</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="kn">import</span> <span class="n">KFold</span>
<span class="c1"># TODO：初始化分类器</span>
<span class="n">clf</span> <span class="o">=</span> <span class="n">DecisionTreeClassifier</span><span class="p">(</span><span class="n">random_state</span><span class="o">=</span><span class="mi">156</span><span class="p">)</span>

<span class="c1"># TODO：创建你希望调节的参数列表</span>
<span class="n">parameters</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;max_depth&quot;</span><span class="p">:[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">15</span><span class="p">)]}</span>

<span class="c1"># TODO：创建一个fbeta_score打分对象</span>
<span class="n">scorer</span> <span class="o">=</span> <span class="n">make_scorer</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)</span>

<span class="c1"># TODO：在分类器上使用网格搜索，使用&#39;scorer&#39;作为评价函数</span>
<span class="n">grid_obj</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">clf</span><span class="p">,</span> <span class="n">parameters</span><span class="p">,</span> <span class="n">scorer</span><span class="p">,</span> <span class="n">cv</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>

<span class="c1"># TODO：用训练数据拟合网格搜索对象并找到最佳参数</span>
<span class="n">grid_obj</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
<span class="c1"># 得到estimator</span>
<span class="n">best_clf</span> <span class="o">=</span> <span class="n">grid_obj</span><span class="o">.</span><span class="n">best_estimator_</span>

<span class="c1"># 使用没有调优的模型做预测</span>
<span class="n">predictions</span> <span class="o">=</span> <span class="p">(</span><span class="n">clf</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">))</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>
<span class="n">best_predictions</span> <span class="o">=</span> <span class="n">best_clf</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>

<span class="c1"># 汇报调参前和调参后的分数</span>
<span class="k">print</span> <span class="s2">&quot;Unoptimized model</span><span class="se">\n</span><span class="s2">------&quot;</span>
<span class="k">print</span> <span class="s2">&quot;Accuracy score on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;F-score on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Optimized Model</span><span class="se">\n</span><span class="s2">------&quot;</span>
<span class="k">print</span> <span class="s2">&quot;Final accuracy score on the validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;Final F-score on the validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stderr output_text">
<pre>/usr/local/lib/python2.7/dist-packages/sklearn/metrics/classification.py:1135: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 due to no predicted samples.
  &#39;precision&#39;, &#39;predicted&#39;, average, warn_for)
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Unoptimized model
------
Accuracy score on validation data: 0.8198
F-score on validation data: 0.6366

Optimized Model
------
Final accuracy score on the validation data: 0.8618
Final F-score on the validation data: 0.7424
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#26368;&#32456;&#27169;&#22411;&#35780;&#20272;">&#38382;&#39064; 5 - &#26368;&#32456;&#27169;&#22411;&#35780;&#20272;<a class="anchor-link" href="#&#38382;&#39064;-5---&#26368;&#32456;&#27169;&#22411;&#35780;&#20272;">&#182;</a></h3><p><em>你的最优模型在测试数据上的准确率和 F-score 是多少？这些分数比没有优化的模型好还是差？你优化的结果相比于你在<strong>问题 1</strong>中得到的天真预测器怎么样？</em><br>
<strong>注意：</strong>请在下面的表格中填写你的结果，然后在答案框中提供讨论。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="&#32467;&#26524;:">&#32467;&#26524;:<a class="anchor-link" href="#&#32467;&#26524;:">&#182;</a></h4><table>
<thead><tr>
<th style="text-align:center">评价指标</th>
<th style="text-align:center">天真预测器</th>
<th style="text-align:center">未优化的模型</th>
<th style="text-align:center">优化的模型</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">准确率</td>
<td style="text-align:center">0.2478</td>
<td style="text-align:center">0.8198</td>
<td style="text-align:center">0.8618</td>
</tr>
<tr>
<td style="text-align:center">F-score</td>
<td style="text-align:center">0.2917</td>
<td style="text-align:center">0.6366</td>
<td style="text-align:center">0.7424</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<ul>
<li><p>最优模型在测试数据中的准确率是0.8618, F-score是0.7424</p>
</li>
<li><p>这些分数比没有优化的模型好</p>
</li>
<li><p>相比于天真预测器，准确率和F-score都有大幅的上升</p>
</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;">&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;">&#182;</a></h2><p>在数据上（比如我们这里使用的人口普查的数据）使用监督学习算法的一个重要的任务是决定哪些特征能够提供最强的预测能力。专注于少量的有效特征和标签之间的关系，我们能够更加简单地理解这些现象，这在很多情况下都是十分有用的。在这个项目的情境下这表示我们希望选择一小部分特征，这些特征能够在预测被调查者是否年收入大于\$50,000这个问题上有很强的预测能力。</p>
<p>选择一个有 <code>'feature_importance_'</code> 属性的scikit学习分类器（例如 AdaBoost，随机森林）。<code>'feature_importance_'</code> 属性是对特征的重要性排序的函数。在下一个代码单元中用这个分类器拟合训练集数据并使用这个属性来决定人口普查数据中最重要的5个特征。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6---&#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;">&#38382;&#39064; 6 - &#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-6---&#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;">&#182;</a></h3><p>当<strong>探索数据</strong>的时候，它显示在这个人口普查数据集中每一条记录我们有十三个可用的特征。<br>
<em>在这十三个记录中，你认为哪五个特征对于预测是最重要的，选择每个特征的理由是什么？你会怎样对他们排序？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<p>优先级从高到低</p>
<ul>
<li>特征1:occupation。工资是大多数人最主要的收入来源，工作能极大地影响年收入。</li>
<li>特征2:age。拥有多年工作经验的人往往收入更高，涨薪也需要时间的积累。</li>
<li>特征3:education_num。受教育时间更长的人，往往家境更好，能力更出众，找好工作也更容易。</li>
<li>特征4:education_level。同上，受过更高等教育的人，家境更好，工作报酬更丰厚。</li>
<li>特征5:hours-per-week。工资高的计算机、金融行业，往往加班更多，工作时间长。因此工作时间长，应该年收入也相应提高。不过也可能是低级劳动者，只能靠更长的工作时间来维持生计。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#32451;&#20064; - &#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#32451;&#20064;---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#182;</a></h3><p>选择一个<code>scikit-learn</code>中有<code>feature_importance_</code>属性的监督学习分类器，这个属性是一个在做预测的时候根据所选择的算法来对特征重要性进行排序的功能。</p>
<p>在下面的代码单元中，你将要实现以下功能：</p>
<ul>
<li>如果这个模型和你前面使用的三个模型不一样的话从sklearn中导入一个监督学习模型。</li>
<li>在整个训练集上训练一个监督学习模型。</li>
<li>使用模型中的 <code>'feature_importances_'</code>提取特征的重要性。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># TODO：导入一个有&#39;feature_importances_&#39;的监督学习模型</span>

<span class="c1"># TODO：在训练集上训练一个监督学习模型</span>
<span class="n">model</span> <span class="o">=</span> <span class="n">DecisionTreeClassifier</span><span class="p">()</span>
<span class="n">model</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># TODO： 提取特征重要性</span>
<span class="n">importances</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">feature_importances_</span>

<span class="c1"># 绘图</span>
<span class="n">vs</span><span class="o">.</span><span class="n">feature_plot</span><span class="p">(</span><span class="n">importances</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
irQCCgBFpNEp+Gu5tO9EWgcFgCIiIiIZowCwmZo8eTJ9+vShV69ejBkzZp35v//97+nXrx8DBgxg
//3359VX47mPs2bNYs8996R///4MGDCAW2+9tbGzLlInNs7q9VUbbdu2ZeDAgZWv+fPn1znfS5Ys
4eqrr67zcrXh7myzzTa89957ALzxxhuYGY8++mhlms6dO7N48eJq1zFp0qSiZUe+hx56iC9/+ctF
511++eV8/PHHG5B7EWkJFAA2Q6tXr+ass87innvuoby8nFtuuYXy8vIqaQYNGsSMGTN49tlnOeqo
ozj//PMBaN++PTfccAPPP/88kydP5txzz2XJkiVN8TFEmq1NN92UWbNmVb425KcjNzQAXL16dY1p
zIyhQ4fy+OOPAzB16lQGDRrE1KlTAXjppZfo1KkTnTp1qnYdw4cP54ILLqhz/nIUAIq0bgoAm6Fp
06bRq1cvevbsycYbb8yIESO46667qqTZb7/9aN++PQBDhw6loqICgJ133pnevXsDsP3229OlSxcW
LVrUuB9ApAVavXo1I0eOZMiQIQwYMIBrr70WgKVLl7L//vszePBgdtttt8pz8YILLmDu3LkMHDiQ
kSNHrlObdvbZZzN27Fggfp7yRz/6EYMHD2bChAnMnTuXgw8+mM997nPss88+vPjii+vkZ6+99qoM
+KZOncr3v//9KgHh3nvvDcCiRYv42te+xpAhQxgyZAiPPfYYAGPHjuXss88GYO7cuQwdOpTddtuN
Cy+8kM0337xyO0uXLuWoo45il1124fjjj8fd+eMf/8jrr7/Ofvvtx3777VefX7OINBMKAJuhhQsX
0q1bt8r3paWlLFy4sNr0f/vb3zjkkEPWmT5t2jRWrFjBTjvt1CD5FGmpPvnkk8rm3yOPPBKI86hD
hw5Mnz6d6dOn85e//IV58+bRrl077rjjDp566ikefPBBfvjDH+LujBkzhp122olZs2Zx6aWX1rjN
Tp068dRTTzFixAhOP/10rrzySmbOnMlll13GmWeeuU76vffeuzIAnDZtGkceeSQLFiwAIgDca6+9
ADjnnHP4/ve/z/Tp07n99ts57bTT1lnXOeecwznnnMP//vc/SktLq8x7+umnufzyyykvL+eVV17h
scce43vf+x7bb789Dz74IA8++GDdvlwRaRH0HMAW7qabbmLGjBk8/PDDVaa/8cYbnHjiiYwbN442
bRTni+TLNQHnu++++3j22WeZOHEiAO+//z6zZ8+mtLSUn/zkJ0yZMoU2bdqwcOFC3nrrrTpv89hj
jwWixm3q1KkcffTRlfOWL1++TvohQ4bw9NNP89FHH7Fy5Uo233xzevbsyZw5c5g6dSo//OEPAbj/
/vurdBH54IMPWLp0aZV1Pf7449x5550AHHfccZx33nmV83bffffKoDDXH/Lzn/98nT+fiLQsCgCb
oa5du1be6UM8OLdr167rpLv//vsZPXo0Dz/8MJtssknl9A8++IDDDjuM0aNHM3To0EbJs0hL5+5c
eeWVDBs2rMr0sWPHsmjRImbOnMlGG21E9+7diz4Hr6SkhDVr1lS+L0yz2WabAbBmzRo6duy4TgBa
qH379vTu3Zvrr7+ewYMHA9Hd4+677+btt9+mT58+let74oknaNeuXd0/NFQpO9q2bcuqVas2aD0i
0rKoaqgZGjJkCLNnz2bevHmsWLGC8ePHM3z48Cppnn76ac444wwmTZpEly5dKqevWLGCI488kpNO
OomjjjqqsbMu0mINGzaMP//5z6xcuRKAl19+mY8++oj333+fLl26sNFGG/Hggw9WjrjfYost+PDD
DyuX33HHHSkvL2f58uUsWbKEBx54oOh2ttxyS3r06MGECROACDyfeeaZomn32msvLr/8cvbcc08A
9txzT6644gqGDh1a+Ty+gw46iCuvvLJymWKB5dChQ7n99tsBGD9+fK2+j8LPJyKti2oAm6GSkhKu
uuoqhg0bxurVq/nmN79J//79GTVqFGVlZQwfPpyRI0eydOnSymakHXbYgUmTJnHbbbcxZcoUFi9e
XNkBfezYsQwcOLAJP5FI9fxkb+osAHDaaacxf/58Bg8ejLvTuXNn7rzzTo4//ngOP/xwdtttN8rK
ythll12A6NO39957s+uuu3LIIYdw6aWXcswxx7DrrrvSo0cPBg0aVO22/vGPf/Cd73yHSy65hJUr
VzJixAg++9nPrpNu77335oorrqgMAAcPHkxFRUWVfn5//OMfOeussxgwYACrVq1i33335Zprrqmy
nssvv5wTTjiB0aNHc/DBB9OhQ4cav4/TTz+dgw8+uLIvoIi0LubePArf+lRWVuYzZsxo6myISBEv
vPACffv2bepsZMrHH3/Mpptuipkxfvx4brnllnWeLFAX2ocizZeZzXT3sprSqQZQRKSVmzlzJmef
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#38382;&#39064; 7 - &#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-7---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#182;</a></h3><p>观察上面创建的展示五个用于预测被调查者年收入是否大于\$50,000最相关的特征的可视化图像。</p>
<p><em>这五个特征的权重加起来是否超过了0.5?</em><br>
<em>这五个特征和你在<strong>问题 6</strong>中讨论的特征比较怎么样？</em><br>
<em>如果说你的答案和这里的相近，那么这个可视化怎样佐证了你的想法？</em><br>
<em>如果你的选择不相近，那么为什么你觉得这些特征更加相关？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<ul>
<li>权重加起来达到了0.73，超过了0.5</li>
<li>age，education-num，hours-per-week和我猜测的一致，marital-status，capital-gain和我猜测的不一致</li>
<li>可视化验证了：<ul>
<li>年龄增长带来的工作经验和阅历增长，可以影响年收入</li>
<li>教育时间，反映了家境、工作起薪和长远的发展，从而影响年收入</li>
<li>每周工作时间越长，相应的收入也越高</li>
</ul>
</li>
<li>更加相关的原因：<ul>
<li>婚姻状况：拥有一定经济基础的人，才能吸引到配偶，进而结婚。结婚后也会更加负责，注意长远的发展，因此婚姻状况会极大地影响年收入</li>
<li>资本收益：资产丰厚的人往往更注重投资，注重非劳动收益；同时，资本收益也是年收入的一部分，也会影响年收入</li>
</ul>
</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#29305;&#24449;&#36873;&#25321;">&#29305;&#24449;&#36873;&#25321;<a class="anchor-link" href="#&#29305;&#24449;&#36873;&#25321;">&#182;</a></h3><p>如果我们只是用可用特征的一个子集的话模型表现会怎么样？通过使用更少的特征来训练，在评价指标的角度来看我们的期望是训练和预测的时间会更少。从上面的可视化来看，我们可以看到前五个最重要的特征贡献了数据中<strong>所有</strong>特征中超过一半的重要性。这提示我们可以尝试去<strong>减小特征空间</strong>，简化模型需要学习的信息。下面代码单元将使用你前面发现的优化模型，并<strong>只使用五个最重要的特征</strong>在相同的训练集上训练模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1"># 导入克隆模型的功能</span>
<span class="kn">from</span> <span class="nn">sklearn.base</span> <span class="kn">import</span> <span class="n">clone</span>

<span class="c1"># 减小特征空间</span>
<span class="n">X_train_reduced</span> <span class="o">=</span> <span class="n">X_train</span><span class="p">[</span><span class="n">X_train</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">[(</span><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">importances</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])[:</span><span class="mi">5</span><span class="p">]]]</span>
<span class="n">X_val_reduced</span> <span class="o">=</span> <span class="n">X_val</span><span class="p">[</span><span class="n">X_val</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">[(</span><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">importances</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])[:</span><span class="mi">5</span><span class="p">]]]</span>

<span class="c1"># 在前面的网格搜索的基础上训练一个“最好的”模型</span>
<span class="n">clf_on_reduced</span> <span class="o">=</span> <span class="p">(</span><span class="n">clone</span><span class="p">(</span><span class="n">best_clf</span><span class="p">))</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train_reduced</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># 做一个新的预测</span>
<span class="n">reduced_predictions</span> <span class="o">=</span> <span class="n">clf_on_reduced</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val_reduced</span><span class="p">)</span>

<span class="c1"># 对于每一个版本的数据汇报最终模型的分数</span>
<span class="k">print</span> <span class="s2">&quot;Final Model trained on full data</span><span class="se">\n</span><span class="s2">------&quot;</span>
<span class="k">print</span> <span class="s2">&quot;Accuracy on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;F-score on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Final Model trained on reduced data</span><span class="se">\n</span><span class="s2">------&quot;</span>
<span class="k">print</span> <span class="s2">&quot;Accuracy on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">reduced_predictions</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;F-score on validation data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">reduced_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Final Model trained on full data
------
Accuracy on validation data: 0.8618
F-score on validation data: 0.7424

Final Model trained on reduced data
------
Accuracy on validation data: 0.8478
F-score on validation data: 0.6971
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;">&#38382;&#39064; 8 - &#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;<a class="anchor-link" href="#&#38382;&#39064;-8---&#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;">&#182;</a></h3><p><em>最终模型在只是用五个特征的数据上和使用所有的特征数据上的 F-score 和准确率相比怎么样？</em><br>
<em>如果训练时间是一个要考虑的因素，你会考虑使用部分特征的数据作为你的训练集吗？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<ul>
<li>相比使用所有特征的数据，只用五个特征的数据，准确率略有下降，但是F-score下降的幅度较大，已经到了0.7以下</li>
<li>即使要考虑训练时间，由于决策树的训练效率很高，相差的时间并不多，但是为此牺牲的F-score代价较大，因此对于这个应用，不会考虑只使用五个特征</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;">&#38382;&#39064; 9 - &#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-9---&#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;">&#182;</a></h3><p>终于到了测试的时候，记住，测试集只能用一次。</p>
<p><em>使用你最有信心的模型，在测试集上测试，计算出准确率和 F-score。</em>
<em>简述你选择这个模型的原因，并分析测试结果</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="c1">#TODO test your model on testing data and report accuracy and F score</span>
<span class="n">test_predictions</span> <span class="o">=</span> <span class="n">best_clf</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="k">print</span> <span class="s2">&quot;Final accuracy score on the test data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">test_predictions</span><span class="p">))</span>
<span class="k">print</span> <span class="s2">&quot;Final F-score on the test data: {:.4f}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">test_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Final accuracy score on the test data: 0.8545
Final F-score on the test data: 0.7264
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>最终准确率达到了0.8545, F-score达到了0.7264。</p>
<p>我选择使用决策树，原因如下：</p>
<ul>
<li>受教育时间、年龄等因素都可以提供很多的信息增益，适用于决策树算法</li>
<li>决策树已经广泛用于银行用户信用评估，和此处评估年收入的应用场景很相似，因此相信可以达到很好的效果</li>
<li>决策树易于理解，这样向 CharityML 推荐这个模型的时候，更能让他们理解工作原理，从而增加他们对此的信任</li>
<li>相对于kNN，决策树运行效率高，只需要很短的计算时间就可以完成训练和预测，便于大规模使用</li>
</ul>
<p>F-score超过了0.7, 说明查准率比较好，准确率也达到了0.85，大多数情况下都能准确预测，是一个相当不错的模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<blockquote><p><strong>注意：</strong> 当你写完了所有的代码，并且回答了所有的问题。你就可以把你的 iPython Notebook 导出成 HTML 文件。你可以在菜单栏，这样导出<strong>File -&gt; Download as -&gt; HTML (.html)</strong>把这个 HTML 和这个 iPython notebook 一起做为你的作业提交。</p>
</blockquote>

</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
